import * as api from '../../api/common';

Page({
  data: {
    items: [], // 初始化为空数组，数据从接口加载后会更新
    deleteConfirmHidden: true, // 控制删除确认弹窗的显示与隐藏
    itemToDelete: null // 存储要删除的观演人 ID
  },

  onShow: async function (options) {
    await this.loadSpectators();
  },

  // 加载观演人列表数据
  async loadSpectators() {
    try {
      const userId = tt.getStorageSync('info').id;
      const res = await api.spectator({
        userId
      });
      if (res.data) {
        this.setData({
          items: res.data
        });
      } else {
        console.error('接口返回数据格式错误', res);
      }
    } catch (error) {
      console.error('请求失败', error);
    }
  },

  // 显示删除确认弹窗
  showDeleteConfirm(event) {
    const itemId = event.currentTarget.dataset.id; // 获取要删除的观演人 ID
    this.setData({
      deleteConfirmHidden: false,
      itemToDelete: itemId
    });
  },

  // 隐藏删除确认弹窗
  hideDeleteConfirm() {
    this.setData({
      deleteConfirmHidden: true,
      itemToDelete: null
    });
  },

  // 确认删除操作
  async deleteItem() {
    if (!this.data.itemToDelete) {
      return;
    }

    try {
      const itemId = this.data.itemToDelete; // 获取要删除的观演人 ID
      await api.deleteSpectator({
        id: itemId
      });

      // 删除成功后，更新数据
      await this.loadSpectators(); // 重新加载数据

      // 显示删除成功提示
      tt.showToast({
        title: '删除成功',
        icon: 'success'
      });

      this.hideDeleteConfirm();
    } catch (error) {
      // 显示删除失败提示
      tt.showToast({
        title: '删除失败',
        icon: 'none'
      });

      console.error('删除失败', error);
    }
  },

  // 导航到新增/编辑观演人页面
  toAddAudience(event) {
    const id = event.currentTarget.dataset.id || ''; // 如果存在 ID，则为编辑，否则为空
    const isEdit = id ? 1 : 0; // 如果 ID 存在，则为编辑模式，否则为新增模式
    tt.navigateTo({
      url: `../addAudience/index?edit=${isEdit}&id=${id}`
    });
  }
});